[IAD-MIGRATION-113] Создать таблицу хранения инцидентов цензуры и черновиков в СУБД

Реализация gRPC метода криптографической валидации токенов магазинов

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи

  • Инструкция по шагам: Выполнить DDL-миграцию для создания таблицы логирования инцидентов нарушений (в контуре безопасности auth_db) и таблицы хранения черновиков чеков, требующих ручной модерации (в контуре mdm_db). Прямые межконтурные FK запрещены.
-- Скрипт миграции для auth_db (Контур SECURITY)
CREATE TABLE IF NOT EXISTS auth_db.abuse_violations (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    user_id VARCHAR(64) NOT NULL,
    trace_id VARCHAR(128) NOT NULL, -- X-Request-ID для сквозного поиска в Loki
    violation_type VARCHAR(32) NOT NULL, -- 'PROFANITY', 'SPAM'
    raw_content TEXT NOT NULL,
    confidence_score NUMERIC(4, 3) NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS idx_violations_user_created 
ON auth_db.abuse_violations (user_id, created_at DESC);

-- Скрипт миграции для mdm_db (Контур MDM)
CREATE TABLE IF NOT EXISTS mdm_db.moderation_tickets (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    ticket_id VARCHAR(64) UNIQUE NOT NULL, -- Бизнес-ключ ticket_123
    user_id VARCHAR(64) NOT NULL,
    trace_id VARCHAR(128) NOT NULL,
    status VARCHAR(32) NOT NULL, -- 'PENDING', 'REJECTED', 'RESOLVED'
    raw_text_draft TEXT NOT NULL,
    app_lang VARCHAR(8) DEFAULT 'ru',
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS idx_mod_tickets_user_status 
ON mdm_db.moderation_tickets (user_id, status) 
WHERE status = 'PENDING';